package ClassDay3.Service;

import ClassDay1.dao.impile.AppDao;
import ClassDay3.Dao.Dao;
import ClassDay3.Dao.DaoApp;
import ClassDay3.Dao.DaoApp2;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.ibatis.DruidDataSourceFactory;
import org.springframework.beans.factory.annotation.Autowired;
import ClassDay3.ScanComp;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.stereotype.Component;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

@Component("service")

public class Service {
    @Value("${name}")//注入普通类型
    int a;
    @Autowired//在没有set字段名的方法下，可以使用自动装配获取bean,这是一种暴力反射，可以不用set方法
    @Qualifier("DaoApp2")//在接口不唯一的情况下用这个注解来过滤子类
    private Dao d1;
//    @Autowired//也可以这样写
//    public void setD1(Dao d1) {
//        this.d1 = d1;
//    }
    public  void Save(){
        System.out.println("Service Save"+a);
        d1.Save();
    }
    @Bean //将返回的对象配置成bean，并且还有更6的暴力反射,参数spring会自动识别是否是bean.
    public DataSource getDruid(DaoApp a) throws SQLException {
        DruidDataSource l=new DruidDataSource();
        l.setDriverClassName("com.mysql.cj.jdbc.Driver");
        l.setUrl("jdbc:mysql://127.0.0.1/新锋web");
        l.setUsername("root");
        l.setPassword("123456");
        return l;
    }
}
